/**
 * 
 */
package com.shifan.phone.action;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.shifan.phone.common.Message;
import com.shifan.phone.common.Page;
import com.shifan.phone.common.Tools;
import com.shifan.phone.model.ProductModel;
import com.shifan.phone.model.UserModel;
import com.shifan.phone.service.ProductModelService;

/**
 * 产品Action
 * @author TangLei
 * @date 2018年12月5日 上午10:19:35
 * @version 1.0
 */
@Controller
@RequestMapping("/product")
public class ProductModelAction {
	
	//注入产品Service接口
	@Resource
	ProductModelService productModelService;
	
	/**
	 * 查询所有产品信息（包括根据条件查询）
	 * @param product 产品对象
	 * @param page 分页对象
	 * @return map集合
	 */
	@RequestMapping("/findAll")
	@ResponseBody
	public Map<String,Object> findAll(ProductModel product,Page page){
		//给产品里面的分页对象赋值
		product.setPages(page);
		//调用产品Service接口里面的查询所有的方法
		return productModelService.findAll(product);
	}
	
	/**
	 * 根据产品ID查询的方法
	 * @param proId 产品ID
	 * @return 产品对象
	 */
	@RequestMapping("/findById")
	@ResponseBody
	public ProductModel findById(String proId){
		//调用产品Service接口里面的根据ID查询的方法
		return productModelService.selectByPrimaryKey(proId);
	}
	
	/**
	 * 增加或修改产品信息
	 * @param product 产品对象
	 * @return 信息对象
	 */
	@RequestMapping("/saveOrUpdate")
	@ResponseBody
	public Message saveOrUpdate(ProductModel product,HttpSession session){
		//创建一个Message对象
		Message mes = new Message();
		//得到当前登录对象
		UserModel user = (UserModel)session.getAttribute("login");
		//给产品对象里面的用户ID赋值
		product.setUserId(user.getUsersId());
		//定义一个变量
		int rows = 0;
		//判断产品ID是否为空
		if(Tools.isEmpty(product.getProId())){
			//调用产品service接口里面的增加的方法
			rows = productModelService.insertSelective(product);
		}else {
			//调用产品service接口里面的修改的方法
			rows = productModelService.updateByPrimaryKeySelective(product);
		}
		//判断
		if(rows > 0){
			//给message对象赋值
			mes.setState(Tools.STATE_YES);
			mes.setMsg("操作成功!");
		}else {
			//给message对象赋值
			mes.setState(Tools.STATE_NO);
			mes.setMsg("操作失败!");
		}
		return mes;
	}
	
	/**
	 * 根据产品ID删除产品信息
	 * @param proId 产品ID
	 * @return 信息对象
	 */
	@RequestMapping("/deletes")
	@ResponseBody
	public Message deletes(String proId){
		//创建一个messge对象
		Message mes = new Message();
		//调用产品Service接口里面的删除的方法
		int rows = productModelService.deleteByPrimaryKey(proId);
		//判断
		if(rows > 0){
			//给message对象赋值
			mes.setState(Tools.STATE_YES);
			mes.setMsg("删除成功!");
		}else {
			//给message对象赋值
			mes.setState(Tools.STATE_NO);
			mes.setMsg("删除失败!");
		}
		return mes;
	}
	
}
